// Loesung_von_Aufgabe_9.8_3_Betapluszerfall

ArrayList<Teilchen> teilchenListe = new ArrayList<Teilchen>(); // Liste aller Teilchen

void setup()
{
  size(500, 500);
}

void mousePressed()
{
  // Proton hinzufügen durch Drücken der linken Maustaste
  if (mouseButton == LEFT)
    teilchenListe.add(new Teilchen(new PVector(mouseX, mouseY), new PVector(0, 0), 1, 1));

  // Neutron hinzufügen durch Drücken der rechten Maustaste
  if (mouseButton == RIGHT)
    teilchenListe.add(new Teilchen(new PVector(mouseX, mouseY), new PVector(0, 0), 0, 1));

  // Schnelles Neutron hinzufügen durch Drücken der mittleren Maustaste
  if (mouseButton == CENTER)
    teilchenListe.add(new Teilchen(new PVector(mouseX, mouseY), new PVector(1, 0), 0, 1));
}

void draw()
{
  background(0, 0, 0);

  for (int i = 0; i < teilchenListe.size(); i++)
  {
    for (int j = 0; j < teilchenListe.size(); j++)
    {
      if (i == j) // Wechselwirkung mit sich selbst verhindern!!!
        continue;

      teilchenListe.get(i).wechselwirkung(teilchenListe.get(j)); // Wechselwirkung des i-ten Teilchens mit dem j-ten Teilchen berechnen
    }
  }

  for (int i = 0; i < teilchenListe.size(); i++)
  {
    // Aufruf der Funktionen
    teilchenListe.get(i).bewegen(5); // In der Klammer steht der Wert für den Zeitschritt dt
    teilchenListe.get(i).zeichnen();
  }
}